<!--
  Copyright 2016 The LUCI Authors. All rights reserved.
  Use of this source code is governed under the Apache License, Version 2.0
  that can be found in the LICENSE file.
  -->

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import"
    href="../bower_components/html5-history-anchor/html5-history-anchor.html">

<link rel="import" href="rpc-descriptor-util.html">

<!-- The `rpc-service` is a service page -->
<dom-module id="rpc-service">
  <template>
    <p>Methods:</p>
    <ul>
      <template is="dom-repeat" items="[[serviceDesc.method]]" as="method">
        <li>
          <a is="html5-history-anchor" pushstate popstate
              href="[[method.name]]">[[method.name]]</a>
          <span class="text-muted comment">
            [[_comment(method)]]
          </span>
        </li>
      </template>
    </ul>
  </template>

  <script>
    'use strict';

    Polymer({
      is: 'rpc-service',

      properties: {
        description: Object, // FileDescriptorSet message
        service: String,
        serviceDesc: {
          type: Object, // ServiceDescriptorProto message
          computed: '_resolveServiceDesc(description, service)'
        }
      },

      _resolveServiceDesc: function(desc, service) {
        var searchResult = rpcExplorer.descUtil.resolve(desc, service);
        if (!searchResult || searchResult.type != 'service') {
          return null;
        }
        return searchResult.desc;
      },

      _comment: function(method) {
        return rpcExplorer.descUtil.normalizeComment(
            method.sourceCodeInfo.leadingComments,
            method.name);
      }
    });
  </script>
</dom-module>
